package com.yc.http.tomcat.impl;

import com.yc.http.tomcat.Cookie;

/**
 * cookie 是在客户端保存少量用户数据的技术
 *  数据量 4K, 50个数据项
 *  储存位置: 内存(没有有效期)     硬盘(有有效期: 秒)
 *  存储方式: js 编码,   java编码
 *
 *  127.0.0.1:8080/demo/a/index.html
 *  浏览器每次发送请求时, 都会带上该路径(/demo/a)下的cookie数据
 *  请求报文头域参数 : Cookie: a=1; b=2; ...
 *  响应报文头域参数 : Set-Cookie: a=1; maxAge=xxx; path=xxx; ...
 *
 */
public class CookieImpl implements Cookie {

    private String domain;
    private String name;
    private String value;
    private String path;
    private Integer maxAge;

    public CookieImpl(String name, String value) {
        this.name = name;
        this.value = value;
    }

    @Override
    public void setDomain(String pattern) {
        this.domain = pattern;
    }

    @Override
    public void setMaxAge(int expiry) {
        this.maxAge = expiry;
    }

    @Override
    public void setPath(String uri) {
        this.path = uri;
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public String getValue() {
        return value;
    }

    @Override
    public String toString() {
        // c=xxx; Max-Age=9999; path=xxxx; domain=
        String ret = name + "=" + value;
        if(maxAge!=null){
            ret += "; Max-Age=" + maxAge;
        }
        if(path!=null){
            ret += "; path=" + path;
        }
        if(domain!=null){
            ret += "; domain=" + domain;
        }

        return ret;
    }
}

